﻿Imports WSEntidades
Public Class csUtilsAddendaSantander
    Private cadenaComercial As String
    Public Function ProcesaConfig(ByVal currentrow As String(), ByRef Resp As List(Of RespuestaPremium))
        Try
            If (currentrow.Length = 5 And currentrow(0) = "10") Then
                If (currentrow(1) = "CVEADD") Then
                    If (currentrow(2) <> "" And currentrow(2) = "SANTANDER") Then
                        cadenaComercial = currentrow(2)
                        Return True
                    Else
                        ValidaCFDi.AgregaRespuesta("10", 3, "El contenido del documento TXT no es correcto. Clave Incorrecta.", Resp)
                        Return False
                    End If
                Else
                    ValidaCFDi.AgregaRespuesta("10", 2, "El contenido del documento TXT no es correcto. La seccion 08 no contiene el indicador CVEADD", Resp)
                    Return False
                End If
            Else
                ValidaCFDi.AgregaRespuesta("10", 1, "El contenido del documento TXT no es correcto. La seccion 08 no corresponde con el formato especificado", Resp)
                Return False
            End If
        Catch ex As Exception
            ValidaCFDi.AgregaRespuesta("10", 0, ex.Message, Resp)
            Return False
        End Try
    End Function
    Public Function ProcesaInfoPago(ByVal currentrow As String(), ByVal comprobante As Comprobante, _
                                      ByRef Resp As List(Of RespuestaPremium), _
                                      ByRef add As Santander.TAddendaSantanderV1)
        Try
            If (currentrow.Length = 12) Then
                If (currentrow(2).Trim <> "") Then
                    add.InformacionPago(0).numProveedor = currentrow(2).Trim
                End If
                If (currentrow(3).Trim <> "") Then
                    add.InformacionPago(0).ordenCompra = currentrow(3).Trim
                End If
                If (currentrow(4).Trim <> "") Then
                    add.InformacionPago(0).posCompra = currentrow(4).Trim
                End If
                If (currentrow(5).Trim <> "") Then
                    add.InformacionPago(0).nombreBeneficiario = currentrow(5).Trim
                End If
                If (currentrow(6).Trim <> "") Then
                    add.InformacionPago(0).institucionReceptora = currentrow(6).Trim
                End If
                If (currentrow(7).Trim <> "") Then
                    add.InformacionPago(0).numeroCuenta = currentrow(7).Trim
                End If
                If (currentrow(8).Trim <> "") Then
                    add.InformacionPago(0).cuentaContable = currentrow(8).Trim
                End If
                If (currentrow(9).Trim <> "") Then
                    add.InformacionPago(0).claveDeposito = currentrow(9).Trim
                End If
                If (currentrow(10).Trim <> "") Then
                    add.InformacionPago(0).email = currentrow(10).Trim
                End If
                If (currentrow(11).Trim <> "") Then
                    add.InformacionPago(0).concepto = currentrow(11).Trim
                End If
                add.InformacionPago(0).codigoISOMoneda = comprobante.Moneda

                Dim Valid As New Santander1
                ''Llamamos al método de validación de Karo.!
                If (Valid.isValid_InfoPago(Resp, add)) Then
                    Return True
                Else
                    Return False
                End If
            Else
                ValidaCFDi.AgregaRespuesta("10", 0, "El contenido del documento TXT no es correcto,longitud incorrecta para sección INFOPAGO", Resp)
                Return False
            End If

        Catch ex As Exception
            ValidaCFDi.AgregaRespuesta("10", 0, ex.Message, Resp)
            Return False
        End Try
    End Function
    Public Function ProcesaInfoEmision(ByVal currentrow As String(), _
                                      ByRef Resp As List(Of RespuestaPremium), _
                                      ByRef add As Santander.TAddendaSantanderV1)
        Try
            If (currentrow.Length = 7 Or currentrow.Length = 19) Then
                If (currentrow.Length = 7) Then
                    If (currentrow(2).Trim <> "") Then
                        add.InformacionEmision.codigoCliente = currentrow(2).Trim
                    End If
                    If (currentrow(3).Trim <> "") Then
                        add.InformacionEmision.contrato = currentrow(3).Trim
                    End If
                    If (currentrow(4).Trim <> "") Then
                        add.InformacionEmision.periodo = currentrow(4).Trim
                    End If
                    If (currentrow(5).Trim <> "") Then
                        add.InformacionEmision.centroCostos = currentrow(5).Trim
                    End If
                    If (currentrow(6).Trim <> "") Then
                        add.InformacionEmision.folioInterno = currentrow(6).Trim
                    End If
                    If (currentrow(7).Trim <> "") Then
                        add.InformacionEmision.claveSantander = currentrow(7).Trim
                    End If
                Else
                    If (currentrow(8).Trim = "FACTORAJE") Then
                        If (currentrow(2).Trim <> "") Then
                            add.InformacionEmision.codigoCliente = currentrow(2).Trim
                        End If
                        If (currentrow(3).Trim <> "") Then
                            add.InformacionEmision.contrato = currentrow(3).Trim
                        End If
                        If (currentrow(4).Trim <> "") Then
                            add.InformacionEmision.periodo = currentrow(4).Trim
                        End If
                        If (currentrow(5).Trim <> "") Then
                            add.InformacionEmision.centroCostos = currentrow(5).Trim
                        End If
                        If (currentrow(6).Trim <> "") Then
                            add.InformacionEmision.folioInterno = currentrow(6).Trim
                        End If
                        If (currentrow(7).Trim <> "") Then
                            add.InformacionEmision.claveSantander = currentrow(7).Trim
                        End If
                        add.InformacionEmision.InformacionFactoraje = New Santander.TFactoraje() {New Santander.TFactoraje()}
                        If (currentrow(9).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).deudorProveedor = currentrow(9).Trim
                        End If
                        If (currentrow(10).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).tipoDocumento = currentrow(10).Trim
                        End If
                        If (currentrow(11).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).numeroDocumento = currentrow(11).Trim
                        End If
                        If (currentrow(12).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).fechaVencimiento = currentrow(12).Trim
                        End If
                        If (currentrow(13).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).plazo = currentrow(13).Trim
                            add.InformacionEmision.InformacionFactoraje(0).plazoSpecified = True
                        End If
                        If (currentrow(14).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).valorNominal = currentrow(14).Trim
                            add.InformacionEmision.InformacionFactoraje(0).valorNominalSpecified = True
                        End If
                        If (currentrow(15).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).aforo = currentrow(15).Trim
                            add.InformacionEmision.InformacionFactoraje(0).aforoSpecified = True
                        End If
                        If (currentrow(16).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).precioBase = currentrow(16).Trim
                            add.InformacionEmision.InformacionFactoraje(0).precioBaseSpecified = True
                        End If
                        If (currentrow(17).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).tasaDescuento = currentrow(17).Trim
                            add.InformacionEmision.InformacionFactoraje(0).tasaDescuentoSpecified = True
                        End If
                        If (currentrow(18).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).precioFactoraje = currentrow(18).Trim
                            add.InformacionEmision.InformacionFactoraje(0).precioFactorajeSpecified = True
                        End If
                        If (currentrow(19).Trim <> "") Then
                            add.InformacionEmision.InformacionFactoraje(0).importeDescuento = currentrow(19).Trim
                            add.InformacionEmision.InformacionFactoraje(0).importeDescuentoSpecified = True
                        End If
                    Else
                        ValidaCFDi.AgregaRespuesta("10", 9, "El contenido del documento TXT no es correcto,longitud incorrecta para sección FACTORAJE", Resp)
                        Return False
                    End If
                End If

                Return True

            Else
                ValidaCFDi.AgregaRespuesta("10", 0, "El contenido del documento TXT no es correcto,longitud incorrecta para sección INFOEMISION", Resp)
                Return False
            End If

        Catch ex As Exception
            ValidaCFDi.AgregaRespuesta("10", 0, ex.Message, Resp)
            Return False
        End Try
    End Function
    Public Function ProcesaInmuebles(ByVal currentrow As String(), _
                                     ByRef Resp As List(Of RespuestaPremium), ByRef add As Santander.TAddendaSantanderV1)
        Try

            If (currentrow.Length = 3) Then
                If (currentrow(2).Trim <> "") Then
                    add.Inmuebles.fechaVencimiento = currentrow(2).Trim
                End If
                If (currentrow(3).Trim <> "") Then
                    add.Inmuebles.numContrato = currentrow(3).Trim
                End If

                Return True

            Else
                ValidaCFDi.AgregaRespuesta("10", 0, "El contenido del documento TXT no es correcto,longitud incorrecta para sección INMUEBLES", Resp)
                Return False
            End If
        Catch ex As Exception
            ValidaCFDi.AgregaRespuesta("10", 0, ex.Message, Resp)
            Return False
        End Try
    End Function
    Public Function ProcesaBasilea(ByVal currentrow As String(), _
                                 ByRef Resp As List(Of RespuestaPremium), ByRef add As Santander.TAddendaSantanderV1)
        Try

            If (currentrow.Length = 4) Then
                If (currentrow(2).Trim <> "") Then
                    add.Basilea.numContrato = currentrow(2).Trim
                End If
                If (currentrow(3).Trim <> "") Then
                    add.Basilea.OrigenGasto = currentrow(3).Trim
                End If
                If (currentrow(4).Trim <> "") Then
                    add.Basilea.TipoGasto = currentrow(4).Trim
                End If

                Return True
            Else
                ValidaCFDi.AgregaRespuesta("10", 0, "El contenido del documento TXT no es correcto,longitud incorrecta para sección BASILEA", Resp)
                Return False
            End If
        Catch ex As Exception
            ValidaCFDi.AgregaRespuesta("10", 0, ex.Message, Resp)
            Return False
        End Try
    End Function
    Public Function ProcesaCampoAdic(ByVal currentrow As String(), _
                                 ByRef Resp As List(Of RespuestaPremium), ByRef add As Santander.TAddendaSantanderV1)
        Try

            If (currentrow.Length = 3) Then
                add.CampoAdicional = New Santander.TCampoAdicional() {New Santander.TCampoAdicional()}
                If (currentrow(2).Trim <> "") Then
                    add.CampoAdicional(0).campo = currentrow(2).Trim
                End If
                If (currentrow(3).Trim <> "") Then
                    add.CampoAdicional(0).valor = currentrow(3).Trim
                End If

                Return True

            Else
                ValidaCFDi.AgregaRespuesta("10", 0, "El contenido del documento TXT no es correcto,longitud incorrecta para sección CAMPOADIC", Resp)
                Return False
            End If
        Catch ex As Exception
            ValidaCFDi.AgregaRespuesta("10", 0, ex.Message, Resp)
            Return False
        End Try
    End Function
End Class
